From: Lucas Kanashiro Date: Sat, 20 Jul 2024 15:24:05 +0000 (-0300) Subject: puma (6.4.2-5) unstable; urgency=medium X-Git-Tag: archive/raspbian/6.6.0-4+rpi1~1^2^2^2^2^2^2~10 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=992fa610a6433fee63f6580d92f87ec63c2a64d8;p=puma.git puma (6.4.2-5) unstable; urgency=medium * Backport upstream patch to update certificates in examples. This fixes a test failure. [dgit import unpatched puma 6.4.2-5] --- 992fa610a6433fee63f6580d92f87ec63c2a64d8 diff --cc debian/README.source index 0000000,0000000..620cda3 new file mode 100644 --- /dev/null +++ b/debian/README.source @@@ -1,0 -1,0 +1,14 @@@ ++puma (4.3.1-1) ++ ++ Several tests have been disabled by default: ++ ++ - test/test_puma_server_ssl.rb has been disabled because all tests fail ++ randomly. However these tests have never been performed in puma 3.x and ++ they also work randomly. So until someone can look into them and fix them, ++ we decided to not run them (see also #921931). ++ ++ - test_control_for_ssl (test/test_cli.rb) and ++ test_control_ssl (test/test_pumactl.rb) show similar issues and don't seem ++ to imply that the package fails to work. So they have been disabled too. ++ ++ -- Daniel Leidert Wed, 05 Feb 2020 23:51:51 +0100 diff --cc debian/changelog index 0000000,0000000..c1fca3b new file mode 100644 --- /dev/null +++ b/debian/changelog @@@ -1,0 -1,0 +1,345 @@@ ++puma (6.4.2-5) unstable; urgency=medium ++ ++ * Backport upstream patch to update certificates in examples. ++ This fixes a test failure. ++ ++ -- Lucas Kanashiro Sat, 20 Jul 2024 12:24:05 -0300 ++ ++puma (6.4.2-4) unstable; urgency=medium ++ ++ * Disable test failing on armhf ++ ++ -- Pirate Praveen Tue, 06 Feb 2024 18:13:41 +0530 ++ ++puma (6.4.2-3) unstable; urgency=medium ++ ++ * Add Breaks: rails (<< 2:6.1.7.3+dfsg-3~) ++ ++ -- Pirate Praveen Mon, 05 Feb 2024 15:12:00 +0530 ++ ++puma (6.4.2-2) unstable; urgency=medium ++ ++ * Disable test failing on arm64 buildd ++ ++ -- Pirate Praveen Mon, 05 Feb 2024 14:11:14 +0530 ++ ++puma (6.4.2-1) unstable; urgency=medium ++ ++ * Switch to github tags from releases (6.4.2 is only available from tags) ++ * New upstream version 6.4.2 (Fixes: CVE-2024-21647) ++ ++ -- Pirate Praveen Mon, 05 Feb 2024 01:08:22 +0530 ++ ++puma (6.4.0-4) unstable; urgency=medium ++ ++ * Remove minitest/retry as well (copy from 5.x branch and fixes salsa ci) ++ * Export LC_ALL also to C.UTF-8 (hoping this would fix some test failures) ++ ++ -- Pirate Praveen Mon, 05 Feb 2024 00:52:13 +0530 ++ ++puma (6.4.0-3) unstable; urgency=medium ++ ++ * Reupload to unstable ++ ++ -- Pirate Praveen Sun, 04 Feb 2024 01:16:15 +0530 ++ ++puma (6.4.0-2) experimental; urgency=medium ++ ++ * Set TEST_CASE_TIMEOUT = 300 (one test is timing out on amd64 buildd) ++ ++ -- Pirate Praveen Mon, 04 Dec 2023 23:59:02 +0530 ++ ++puma (6.4.0-1) experimental; urgency=medium ++ ++ * New upstream version 6.4.0 ++ * Disable more tests and refresh patches ++ * Add procps to build depends for kill command (used in tests) ++ ++ -- Pirate Praveen Sun, 03 Dec 2023 13:58:23 +0530 ++ ++puma (6.0.2-1) experimental; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ * d/control (Standards-Version): Bump to 4.6.2. ++ (Build-Depends): Add ruby-sd-notify. ++ * d/copyright (Copyright): Update years. ++ * d/ruby-tests.rake: Re-enable multiple tests (closes: #984713). ++ * d/upstream/metadata: Adjust a few URLs. ++ ++ -- Daniel Leidert Thu, 09 Feb 2023 16:12:20 +0100 ++ ++puma (5.6.5-2) unstable; urgency=medium ++ ++ * debian/ruby-tests.rake: skip test that fails often (Closes: #1006022) ++ * debian/ruby-tests.rake: exclude tests that fail often but not always ++ ++ -- Antonio Terceiro Wed, 02 Nov 2022 09:26:37 -0300 ++ ++puma (5.6.5-1) unstable; urgency=medium ++ ++ * Update watch file for github.com pattern change ++ * New upstream version 5.6.5 ++ * Refresh patches ++ * Bump Standards-Version to 4.6.1 (no changes needed) ++ ++ -- Pirate Praveen Sun, 16 Oct 2022 22:44:46 +0530 ++ ++puma (5.6.4-1) unstable; urgency=medium ++ ++ * New upstream version 5.6.4 ++ * Refresh patches ++ * Disable some tests that fail with ++ NameError: uninitialized constant Puma::LogWriter ++ * Remove tmp/restart.txt in clean ++ ++ -- Pirate Praveen Mon, 04 Apr 2022 13:24:10 +0530 ++ ++puma (5.5.2-2) unstable; urgency=medium ++ ++ * Team upload ++ * debian/rules: force an UTF-8 locale ++ * debian/ruby-tests.rake: wrap lines ++ * debian/ruby-tests.rake: run all ssl tests on autopkgtest only ++ * debian/test/control: give ssl test a name ++ ++ -- Antonio Terceiro Tue, 02 Nov 2021 16:35:12 -0300 ++ ++puma (5.5.2-1) unstable; urgency=medium ++ ++ * Team upload ++ * New upstream version 5.5.2 ++ - Builds and tests fine again (Closes: #998295) ++ * Add build-dependency on ruby-localhost ++ * debian/rules: exclude several unnecessary files from installation ++ ++ -- Antonio Terceiro Tue, 02 Nov 2021 14:39:10 -0300 ++ ++puma (5.3.2-3) unstable; urgency=medium ++ ++ * Use --gem-install layout option of dh-ruby ++ ++ -- Pirate Praveen Tue, 12 Oct 2021 02:24:33 +0530 ++ ++puma (5.3.2-2) unstable; urgency=medium ++ ++ * Reupload to unstable ++ * Bump Standards-Version to 4.6.0 (no changes needed) ++ * Bump debhelper compatibility level to 13 ++ ++ -- Pirate Praveen Mon, 11 Oct 2021 03:17:23 +0530 ++ ++puma (5.3.2-1) experimental; urgency=medium ++ ++ * New upstream version 5.3.2 (Closes: #989054) (Fixes: CVE-2021-29509) ++ * Refresh patches ++ ++ -- Pirate Praveen Fri, 28 May 2021 22:34:53 +0530 ++ ++puma (4.3.8-1) unstable; urgency=medium ++ ++ * New upstream version 4.3.8 (Closes: #989054) (Fixes: CVE-2021-29509) ++ ++ -- Pirate Praveen Wed, 26 May 2021 10:24:19 +0530 ++ ++puma (5.2.2-2) experimental; urgency=medium ++ ++ * Disable test that failied on amd64 buildd ++ ++ -- Pirate Praveen Mon, 08 Mar 2021 23:03:52 +0530 ++ ++puma (5.2.2-1) experimental; urgency=medium ++ ++ * New upstream version 5.2.2 ++ * Bump Standards-Version to 4.5.1 (no changes needed) ++ * Refresh patches for new upstream release ++ * Add ruby-minitest-stub-const as build dependency ++ * Disable failing tests ++ ++ -- Pirate Praveen Sun, 07 Mar 2021 21:03:52 +0530 ++ ++puma (4.3.6-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream version. ++ - Fixes CVE-2020-11076 and CVE-2020-11077 (closes: #972102). ++ * d/copyright: Minor update. ++ * d/puma.lintian-overrides: Add package override. ++ * d/ruby-tests.rake: Add logic to run SSL test. ++ * d/patches/*.patch: Add missing headers and refresh. ++ * d/source/lintian-overrides: Add source override. ++ * d/tests/control: Set environment variable to run the SSL tests separately ++ (similar to the solution used in the jekyll package). ++ * d/tests/test-puma-server-ssl*: Removed. ++ ++ -- Daniel Leidert Thu, 15 Oct 2020 20:57:29 +0200 ++ ++puma (4.3.3-3) unstable; urgency=medium ++ ++ * Include patch from gitlab to improve performance ++ ++ -- Pirate Praveen Tue, 18 Aug 2020 00:15:20 +0530 ++ ++puma (4.3.3-2) unstable; urgency=medium ++ ++ [ Daniel Leidert ] ++ * debian/tests/test_puma_server_ssl, ++ debian/tests/test_puma_server_ssl.rake: Run test/test_puma_server_ssl.rb ++ in an openssl enviroment not using the Debian defaults. ++ * debian/tests/control: Add new test. ++ ++ [ Debian Janitor ] ++ * Set field Upstream-Contact in debian/copyright. ++ * Remove obsolete fields Contact, Name from debian/upstream/metadata ++ (already present in machine-readable debian/copyright). ++ ++ [ Pirate Praveen ] ++ * Remove debian-branch option from debian/gbp.conf ++ * Reupload to unstable ++ ++ -- Pirate Praveen Mon, 03 Aug 2020 15:37:16 +0530 ++ ++puma (4.3.3-1) experimental; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ - Fixes CVE-2020-5247 (closes: #952766). ++ - Fixes CVE-2020-5249 (closes: #953122). ++ * d/control (Section): Change to web. ++ (Vcs-Git): Indicate branch name via -b debian/experimental. ++ (Homepage): Use secure URL. ++ (Depends): Use ${ruby:Depends}. ++ * d/copyright (Source): Use secure URL. ++ * d/rules: Add override to install upstream changelog. ++ * d/watch: Use package name for tarball. ++ ++ -- Daniel Leidert Thu, 05 Mar 2020 01:34:17 +0100 ++ ++puma (4.3.1-1) experimental; urgency=medium ++ ++ * Team upload. ++ * New upstream release ++ - Fixes CVE-2019-16770 Keepalive thread overload/DoS (closes: #946312). ++ * d/control (Rules-Requires-Root): Set to binary-targets. ++ (Build-Depends, Depends): Add ruby-nio4r. ++ (Build-Depends): Add curl for test/test_integration_single.rb. ++ * d/ruby-tests.rake: Disable test/test_puma_server_ssl.rb. ++ * d/README.source: Add to explain tests which have been disabled. ++ * d/patches/0004-puma.gemspec-drop-git-usage.patch: Refresh patch. ++ * d/patches/0011-disable-minitest-extensions.patch: Add patch. ++ - Disable unavailable minitest extensions (retry and proveit). ++ * d/patches/0012-disable-cli-ssl-tests.patch: Add patch. ++ - Disable CLI SSL tests. ++ * d/patches/0013-fix-test-term-not-accepts-new-connections.patch: Add. ++ - Fix test_term_not_accepts_new_connections to be locale independent. ++ * d/patches/0002-test_integration-disable-test-that-fails-randomly.patch, ++ d/patches/0003-test_cli-disable-test-that-rails-randomly.patch, ++ d/patches/0005-test_puma_server-disable-test-that-fails-randomly.patch, ++ d/patches/0006-test-helper.rb-drop-bundler-usage.patch, ++ d/patches/0007-test-test_cli.rb-disable-test-that-fails-randomly.patch, ++ d/patches/0008-fix-ssl-tests.patch, ++ d/patches/0009-disable-tests-failing-in-single-cpu.patch, ++ d/patches/0010-fix-cluster-exit-for-ruby27.patch: Remove obsolete patches. ++ * d/patches/series: Adjust. ++ ++ -- Daniel Leidert Thu, 06 Feb 2020 11:45:11 +0100 ++ ++puma (3.12.4-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ - Fixes CVE-2020-5247 (closes: #952766). ++ - Fixes CVE-2020-5249 (closes: #953122). ++ * d/control (Section): Changed to web. ++ (Homepage): Use secure URL. ++ (Depends): Add ${ruby:Depends}. ++ * d/copyright (Source): Use secure URL. ++ * d/ruby-tests.rake: Disable test/test_puma_server_ssl.rb for the moment. ++ These tests fail due to openssl being configured to use SECLEVEL2 ++ (https://github.com/puma/puma/issues/2147). ++ * d/rules: Add override to install upstream changelog. ++ * d/watch: Rename downloaded tarball to include package name. ++ * d/patches/0008-fix-ssl-tests.patch: Remove patch. Applied upstream. ++ * d/patches/CVE-2019-16770.patch: Ditto. ++ * d/patches/*.patch: Refresh patches. ++ * d/patches/series: Adjust. ++ ++ -- Daniel Leidert Wed, 04 Mar 2020 23:09:16 +0100 ++ ++puma (3.12.0-4) unstable; urgency=medium ++ ++ * Team upload. ++ * d/control (Rules-Requires-Root): Set to binary-targets. ++ * d/patches/0011-disable-minitest-extensions.patch: Add patch. ++ - Disable unavailable minitest retry extension. ++ * d/patches/CVE-2019-16770.patch: Add patch. ++ - Backport fix for CVE-2019-16770 from upstream (closes: #946312). ++ * d/patches/series: Add patch. ++ ++ -- Daniel Leidert Thu, 06 Feb 2020 12:54:59 +0100 ++ ++puma (3.12.0-3) unstable; urgency=medium ++ ++ * Team upload. ++ * d/compat: Remove obsolete file. ++ * d/control: Add Rules-Requires-Root field. ++ (Build-Depends): Use debhelper-compat. ++ (Standards-Version): Bump to 4.5.0. ++ (Depends): Drop ruby-interpreter. ++ * d/copyright (Format): Fix insecure-copyright-format-uri and add myself. ++ * d/puma.1, d/pumactl.1: Add manual pages. ++ * d/puma.manpages: Install manual pages. ++ * d/ruby-tests.rake: Set verbose mode. ++ * d/patches/0010-fix-cluster-exit-for-ruby27.patch: Add patch. ++ - Fix hang with Ruby >= 2.6 when shutting down workers. ++ * d/patches/series: Enable new patch. ++ * d/upstream/metadata: Add metadata. ++ * d/upstream/metadata: Add metadata. ++ ++ -- Daniel Leidert Wed, 05 Feb 2020 18:20:58 +0100 ++ ++puma (3.12.0-2) unstable; urgency=medium ++ ++ * Disable tests failing in single cpu (Closes: #921931) ++ ++ -- Pirate Praveen Sun, 10 Feb 2019 18:56:47 +0530 ++ ++puma (3.12.0-1) unstable; urgency=medium ++ ++ [ Balint Reczey ] ++ * New upstream version 3.12.0 ++ * Refresh patches ++ ++ [ Pirate Praveen ] ++ * Fix OpenSSL 1.1.1 test failures with upstream patch (Closes: #900156) ++ * Bump Standards-Version to 4.3.0 (no changes needed) ++ * Add myself to uploaders ++ ++ -- Pirate Praveen Sun, 10 Feb 2019 10:56:59 +0530 ++ ++puma (3.11.3-1) unstable; urgency=medium ++ ++ * Team upload ++ * Remove myself from Uploaders: ++ * New upstream version 3.11.3 ++ * Build against libssl-dev instead of libssl1.0-dev (Closes: #859542) ++ * Refresh packaging files with `dh-make-ruby -wo .` ++ * Bump debhelper compat to 11 ++ * Change Vcs-* to point to salsa.debian.org ++ * Use standard debian/ruby-tests.rake ++ * drop build-dependency on ruby-hoe ++ * Refresh patches ++ * New patches: ++ - 0006-test-helper.rb-drop-bundler-usage.patch ++ - 0007-test-test_cli.rb-disable-test-that-fails-randomly.patch ++ * Replace 0001-test_puma_server_ssl-update-for-newer-versions-of-Op.patch ++ with 0001-test_puma_server_ssl-disable-test-that-takes-too-lon.patch ++ ++ ++ -- Antonio Terceiro Wed, 28 Mar 2018 18:53:22 -0300 ++ ++puma (3.6.0-1) unstable; urgency=medium ++ ++ * Initial release (Closes: #720336) ++ ++ -- Antonio Terceiro Thu, 10 Nov 2016 16:47:06 -0200 diff --cc debian/clean index 0000000,0000000..4535125 new file mode 100644 --- /dev/null +++ b/debian/clean @@@ -1,0 -1,0 +1,1 @@@ ++tmp/restart.txt diff --cc debian/control index 0000000,0000000..d2b1a28 new file mode 100644 --- /dev/null +++ b/debian/control @@@ -1,0 -1,0 +1,32 @@@ ++Source: puma ++Section: web ++Priority: optional ++Maintainer: Debian Ruby Team ++Uploaders: Pirate Praveen , ++ Lucas Kanashiro ++Build-Depends: curl, ++ debhelper-compat (= 13), ++ gem2deb (>= 1.6), ++ libssl-dev, ++ rake, ++ ruby-localhost, ++ ruby-minitest-stub-const, ++ ruby-nio4r (>= 2), ++ ruby-rack (<< 3), ++ ruby-sd-notify, ++ procps ++Standards-Version: 4.6.2 ++Vcs-Git: https://salsa.debian.org/ruby-team/puma.git -b debian/experimental ++Vcs-Browser: https://salsa.debian.org/ruby-team/puma ++Homepage: https://puma.io ++Testsuite: autopkgtest-pkg-ruby ++Rules-Requires-Root: binary-targets ++ ++Package: puma ++Architecture: any ++Breaks: rails (<< 2:6.1.7.3+dfsg-3~) ++Depends: ruby, ${misc:Depends}, ${ruby:Depends}, ${shlibs:Depends} ++Description: threaded HTTP 1.1 server for Ruby/Rack applications ++ Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for ++ Ruby/Rack applications. Puma is intended for use in both development and ++ production environments. diff --cc debian/copyright index 0000000,0000000..70590cd new file mode 100644 --- /dev/null +++ b/debian/copyright @@@ -1,0 -1,0 +1,42 @@@ ++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ ++Upstream-Name: puma ++Upstream-Contact: https://github.com/puma/puma/issues ++Source: https://github.com/puma/puma ++ ++Files: * ++Copyright: 2005, Zed Shaw ++ 2011, Evan Phoenix ++License: BSD-3-clause ++ ++Files: debian/* ++Copyright: 2016 Antonio Terceiro ++ 2020,2023 Daniel Leidert ++ 2023 Debian Ruby Extras Maintainers ++License: BSD-3-clause ++Comment: The Debian packaging is licensed under the same terms as the source. ++ ++License: BSD-3-clause ++ All rights reserved. ++ . ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions are met: ++ . ++ * Redistributions of source code must retain the above copyright notice, this ++ list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above copyright notice ++ this list of conditions and the following disclaimer in the documentation ++ and/or other materials provided with the distribution. ++ * Neither the name of the Evan Phoenix nor the names of its contributors ++ may be used to endorse or promote products derived from this software ++ without specific prior written permission. ++ . ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE ++ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ++ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ++ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --cc debian/gbp.conf index 0000000,0000000..da9f191 new file mode 100644 --- /dev/null +++ b/debian/gbp.conf @@@ -1,0 -1,0 +1,4 @@@ ++[DEFAULT] ++pristine-tar = true ++sign-tags = true ++verbose = true diff --cc debian/patches/0004-puma.gemspec-drop-git-usage.patch index 0000000,0000000..3c0205c new file mode 100644 --- /dev/null +++ b/debian/patches/0004-puma.gemspec-drop-git-usage.patch @@@ -1,0 -1,0 +1,23 @@@ ++From: Antonio Terceiro ++Date: Wed, 5 Feb 2020 21:36:05 +0100 ++Subject: Drop git usage from gemspec ++ ++Forwarded: not-needed ++--- ++ puma.gemspec | 3 +-- ++ 1 file changed, 1 insertion(+), 2 deletions(-) ++ ++diff --git a/puma.gemspec b/puma.gemspec ++index f5e01c2..9ff86a3 100644 ++--- a/puma.gemspec +++++ b/puma.gemspec ++@@ -13,8 +13,7 @@ Gem::Specification.new do |s| ++ if RbConfig::CONFIG['ruby_version'] >= '2.5' ++ s.metadata["msys2_mingw_dependencies"] = "openssl" ++ end ++- s.files = `git ls-files -- bin docs ext lib tools`.split("\n") + ++- %w[History.md LICENSE README.md] +++ s.files = Dir.glob('**/*').reject { |f| f =~ /^debian\//} ++ s.homepage = "https://puma.io" ++ ++ if s.respond_to?(:metadata=) diff --cc debian/patches/0009-CI-update-chain-certs-example-files-3426.patch index 0000000,0000000..d7b0bd0 new file mode 100644 --- /dev/null +++ b/debian/patches/0009-CI-update-chain-certs-example-files-3426.patch @@@ -1,0 -1,0 +1,521 @@@ ++From: Patrik Ragnarsson ++Date: Sun, 14 Jul 2024 18:44:29 +0200 ++Subject: CI: update chain certs example files (#3426) ++ ++Ran "ruby examples/puma/chain_cert/generate_chain_test.rb" ++ ++examples/puma/chain_cert/cert.crt expired June 5, 2024 before this change, causing test failures. ++ ++Origin: upstream, https://github.com/puma/puma/commit/11e5d6dcbf0f6bfb170f38c5713d5851399a55dd ++--- ++ examples/puma/chain_cert/ca.crt | 33 +++++---- ++ examples/puma/chain_cert/ca.key | 50 ++++++------- ++ examples/puma/chain_cert/ca_chain.pem | 65 +++++++++-------- ++ examples/puma/chain_cert/cert.crt | 32 ++++---- ++ examples/puma/chain_cert/cert.key | 50 ++++++------- ++ examples/puma/chain_cert/cert_chain.pem | 97 +++++++++++++------------ ++ examples/puma/chain_cert/generate_chain_test.rb | 5 +- ++ examples/puma/chain_cert/intermediate.crt | 32 ++++---- ++ examples/puma/chain_cert/intermediate.key | 50 ++++++------- ++ 9 files changed, 207 insertions(+), 207 deletions(-) ++ ++diff --git a/examples/puma/chain_cert/ca.crt b/examples/puma/chain_cert/ca.crt ++index a5ae2d7..3247c10 100644 ++--- a/examples/puma/chain_cert/ca.crt +++++ b/examples/puma/chain_cert/ca.crt ++@@ -1,19 +1,20 @@ ++ -----BEGIN CERTIFICATE----- ++-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 +++Srj3l9ghFLwEImIBPw== ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/ca.key b/examples/puma/chain_cert/ca.key ++index 4d4369a..c228706 100644 ++--- a/examples/puma/chain_cert/ca.key +++++ b/examples/puma/chain_cert/ca.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/chain_cert/ca_chain.pem b/examples/puma/chain_cert/ca_chain.pem ++index 5d77a44..785fc82 100644 ++--- a/examples/puma/chain_cert/ca_chain.pem +++++ b/examples/puma/chain_cert/ca_chain.pem ++@@ -1,39 +1,40 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yMzA2MDEwMDAwMDBaFw0yNzA2MDEwMDAwMDBaMCYx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx ++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI ++-hvcNAQEBBQADggEPADCCAQoCggEBAOHKwUnnX7QXvewBtH5XAtRbhhgAIQQ14pxs ++-9w3WBWY6B7zKZdkRnu/bULwP4QGHPc/YAtWSMN+1aWWm/6od3xn0AfFrzWxzMXVT ++-ZTnI6aQ3emxIec3gc5Xa4+oF0SUmVZiY3U9l4Apk1d4xNnV81UzE7KpdSUqYXdS/ ++-Ja7T9QXFbE0/5L7Ci9luVQLyUYNiW2CmaiiC1YE9292kfZTujsKKf4Og/65U4qgF ++-mfSTnIBSAHTkiF5Qo8QTx+qz55A0ue2NX3QXVZOYJMtjt8OQEWkGKP2iPFnGnd3i ++-TW57THaNNzVan0A96IZv3hGVNqqlUto6L0tni+QD+3d14FDRLKMCAwEAAaN1MHMw ++-HQYDVR0OBBYEFPsAsa4SCE1WrZvYs/3TKSllpTUbMA4GA1UdDwEB/wQEAwICBDAT ++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFIDE ++-rrQrGbYkUaWL+93VfSqFj3fWMA0GCSqGSIb3DQEBDQUAA4IBAQCCEJymTKz93kmQ ++-Bfgj1UkVo1MC4GQAwVDJJTdEk80a3AFPuwmuwcl50rq2w4UBN9vkleKWz9ysWSrQ ++-Qs5RoM08ggca1dqgzIKHH95ft0BFZixEfkAhfAcrEiBNT6H5lgJ+EcFNq1n1T435 ++-ow3r9P3u4FlBP4BmfpffnOFlY1cTYsEOFtDSGmBe8mNJkx2z37OAiLtSKPtkfpeq ++-84haUFAvfJX/93JLsuHbrhZXTjXVGDsbITxheiqmxaN5HiFacG0Ju2USPtHAge8H ++-Rz3fbPlN2Txn83ejbaHetj2zrbsd+QobPusfDRZKUcDG/CSXV7lc65+Lp0iPbCd/ ++-KG6q1Yf+ +++hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF +++cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc +++T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD +++szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne +++exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG +++8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw +++HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT +++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk +++Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy +++aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk +++c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo +++4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ ++++UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0 +++Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq +++g3cTPG2b ++ -----END CERTIFICATE----- ++ -----BEGIN CERTIFICATE----- ++-MIIDKDCCAhCgAwIBAgIBATANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yMzA2MDEwMDAwMDBaFw0yNzA2MDEwMDAwMDBaMBwx +++MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w +++dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMBwx ++ GjAYBgNVBAMMEWNhLnB1bWEubG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOC ++-AQ8AMIIBCgKCAQEAtHILxmP3PDm0UxL6CRTqrUWf1PYmBXgoLy7tZNj3KGMQVsw0 ++-jeeyAUI9UimtNtgAbKVCrtC46phxwAn0c0wcPiXpckfAaF1pViXRe9WrMLmFeo47 ++-Uyy2uWuApuFPpHBw+baflr+h1haEYVSFwsJaIPyuuf8vh5PuvOtfdqrG+V7gve86 ++-Utk2NTZUIpB0oaI/DqXyBor9Ra3IucuaAKHh+Mjc61WIJhjMIgbtfl+FWuDXiYz6 ++-hNbXkr4LtU2hKQCD1NKZjI4I/UIPnB5Wf+cdAIiNz2UvTvEfrCTew0mtckDFsC2x ++-gMpHnkuUi/ZxM5n8UwikHqtLVVmFpYCzN3idrwIDAQABo3UwczAdBgNVHQ4EFgQU ++-gMSutCsZtiRRpYv73dV9KoWPd9YwDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoG ++-CCsGAQUFBwMBMAwGA1UdEwQFMAMBAf8wHwYDVR0jBBgwFoAUgMSutCsZtiRRpYv7 ++-3dV9KoWPd9YwDQYJKoZIhvcNAQENBQADggEBAANVPJJZttOrWM4PfftJ7e2MHrM4 ++-f3EUtNgAsbRNw1MAvhAxaR7JjyXYYKXNkfz5H1o8V15iZvupG4jOQRRrQfgAu+JR ++-ExOCoidD/uyk63kFre6OmeyjblKkuTnbrt/zBHVej+5eLqFMIQhAsHZCZn3Yrc36 ++-rKtoYgWgmkL1AMG830QR1uNT4NuReP/XPkdUgoJyw0YPypMjmVNczAHFcVS4jW1p ++-OJx2Sp1Q4HCUY5gzXEy5wEIuuQcmQZEsxA5J2BLV6ciHuwKvI8WDqvTb0/fipcBQ ++-AtK32KFAGMgaYZ7ivAiC8WcZCp5fXToEhu7F8uRd4ZJlMf2UCyQvEroTD0Y= +++AQ8AMIIBCgKCAQEAwsnMX57iy7q+UmP57mn6VQYnG/MFL0BvC4NcV/OpS4BkOHHi +++pvp5tJxZ7N/OSg/zkYSTEPEvzLbtIORmaAMUse5rmlth/y+yMtNOc3wIJt0+Dyz8 +++804gkDhb5Mq3Cslo899IAJ/6aBbCElLq7GC6vMtIvUvHtXHynnl7R21j/+Q6CZJj +++bj9UuZQ3Zqxnw300E/ePrO/UlDpuihG6H2MwxncE8P6TxNkKF7H9nG5e68qeZIeF +++R/LqQQjoZJDVlIxL3DLoiVUmC/75NWCJwDo2bJcE1T8tkN5lcXKo1z5XcHsUx70d +++e78LVy7SIKLI2YvC1VhJIy53f2XL+9iOWqsdyQIDAQABo4GFMIGCMB0GA1UdDgQW +++BBS1ZBYd6u9kYpn8Mgq1zMUoduXFFjAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAww +++CgYIKwYBBQUHAwEwDAYDVR0TBAUwAwEB/zAuBgNVHSMEJzAloSCkHjAcMRowGAYD +++VQQDDBFjYS5wdW1hLmxvY2FsaG9zdIIBATANBgkqhkiG9w0BAQ0FAAOCAQEAMsHU +++XdW0ykvbK5jeisKcVmHfiete8UF0ftNfaIBU44u0wF3gvmpXz6hVBRaxhcD2nTgJ +++bYHUqSMmA0zD9RS3puPZpKj5k4x51WJVPQc9OSpKbNCdsaNtus6frLSuBrVypu9L +++7GEnTe2bS5j61XQXL9txKbECpFfP9tZiBoQ6a3aZS1eN8UUucbWQTweMrmRohFBa +++VG695OlN05QLGoyAdCHYWA63FSjHo/uWTHVoZ2QI8PJ8WE724kB6rhrkLEYzj9sk +++jhd5r+z3HuMtDx8OhTMreaByAyox+Rh2pGbKFtoGWpXsTz7Bf/ZBmosRw+fbxiJl +++Srj3l9ghFLwEImIBPw== ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/cert.crt b/examples/puma/chain_cert/cert.crt ++index 5c8dbce..8df6d84 100644 ++--- a/examples/puma/chain_cert/cert.crt +++++ b/examples/puma/chain_cert/cert.crt ++@@ -1,20 +1,20 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDLjCCAhagAwIBAgIBbzANBgkqhkiG9w0BAQ0FADAmMSQwIgYDVQQDDBtpbnRl ++-cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjMwNjA1MDAwMDAwWhcNMjQwNjA1 +++cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjQwNzE0MDAwMDAwWhcNMjUwNzE0 ++ MDAwMDAwWjAeMRwwGgYDVQQDDBN0ZXN0LnB1bWEubG9jYWxob3N0MIIBIjANBgkq ++-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1iY3+/B0oIXUChZFnXVQvZ2PfYJ8UVeW ++-3Oq9a6zQTP95aSwtv/rAt1jYA1H18p6npa254ODZcdWp+EtvUIiTFIII9X0B6WH/ ++-rDm8D6mDkMGi/L3DlJ1vJaOVbXe9NL33zJJznAZ0T2lcg9qXN6wbUIhcChRSMsFw ++-xR0pPnvZv34NBvefxNWnJpFKqyXEi64ONHwjil4/Sk7lunmguwLAPano3wp81qsp ++-rv8KTiqJUfF78CrtwY1LMWvC3AcbPBLlyBrr7mPfAoVuxu+s6tXqpcOsp/FoKa9Y ++-lIxS82po1aKLnXkAMc75rlT5WVXrPVeRWgDucxUDOXFpl955pNSQRQIDAQABo28w ++-bTAdBgNVHQ4EFgQU3FVgqa85bI7/5jVEfOh/w1RfvH4wCwYDVR0PBAQDAgbAMBMG ++-A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAU+wCxrhII ++-TVatm9iz/dMpKWWlNRswDQYJKoZIhvcNAQENBQADggEBAG0gjxN6U8EaUhaJJj8C ++-Av/5A+F5SPDotbpj4T/1ciSn8wQf3aotBaNCzv7mC2mWtl4PIrOZ8bH42dZ0sWEU ++-Ft1h4HVLQADv5QU0RKNuKXoDRvVXB6IDNAIWB+8NQwYwj+WvYH+BLoc53yBfHQGK ++-B+y8SVeEcQVjzmcZ2TUT2/b5XEsiV+ugLce294lUPIlSmWK043Oe3UfMRuurPwyj ++-Qjn/pwl7S22BRDCorQ5NThb+/lsO54J/8zpCxHmhgm152mXcCYBNjYLwd5SYvawN ++-Q5EDcE/31xqtZkGtBDb/ZqwUSbmwLb3qFRjgM/t+H2eUMyZUxbvmxzlZdAO7xAOC ++-fho= +++hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA18r/nJpmqPzoMawvn7qt6Dtz3Jx5332M +++BnBxXf+dlwZo+YkXGCmtXGXi8UtNZh+CnvlBf4+nauxYwzEHrIbMafH+Zt63OUvA +++jb5uwDDaVOMal4vtwkoGzLJxINzvaxEzsSzX89maxkWyaRnaM9ac5/v0WvH0Kz+Z +++JhzFQAIpUdxwb235BKtIwyMkKqYQb8+0mxSIIEKP9dqsrWNFXiUY1YbY786Yz76N +++xAg/KFSUGdAPJlqMQEVaroTU6zNX5aa6WO8ynnBIvPdS9FbrfIupoXoTQ8WHnmeh +++N09auierVy//KtZIHFyd7pMaeiqgyWn91fRz9RluEhWT8IfuOofViQIDAQABo28w +++bTAdBgNVHQ4EFgQUBvBG+wQNE+xNksBRCuzO04bhs2kwCwYDVR0PBAQDAgbAMBMG +++A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUHrcqkw8h +++mKqxtzRdSG4QNeE+pSIwDQYJKoZIhvcNAQENBQADggEBAKO8XfzNct6uwxSh4FVe +++xDcPbIOOGJv3lD2sA1xDRzw/djMITd2eRqG1iLim8whRfd1LqsXb7nHgPJIKIifR +++oqSg0LxmsmZ2+tocFpmVNppKWUggVAuH/yel1s9JWzEkB1NXyoRONQCZIuXTmInu +++RdrdERwy+1VZRSFL7IBZfg45ZzwH+/7Vaz5kY5FjkyBk0xwhIDRUXprO6ZhTokUC +++152UBWdAiK4IHRxLY+h2cjIsR8szSTUzS8erwqQmt+NIeiUEJYtuVS9rQ3zXNBKV +++l9X5G9FwHjWQL3j95ze60sa2xzObCqZ+w7f05O6ZiJ9dqdk+oIPe3+xWeQgVyYn0 +++SLg= ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/cert.key b/examples/puma/chain_cert/cert.key ++index d6e70d8..411bdc8 100644 ++--- a/examples/puma/chain_cert/cert.key +++++ b/examples/puma/chain_cert/cert.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-MIIEowIBAAKCAQEA1iY3+/B0oIXUChZFnXVQvZ2PfYJ8UVeW3Oq9a6zQTP95aSwt ++-v/rAt1jYA1H18p6npa254ODZcdWp+EtvUIiTFIII9X0B6WH/rDm8D6mDkMGi/L3D ++-lJ1vJaOVbXe9NL33zJJznAZ0T2lcg9qXN6wbUIhcChRSMsFwxR0pPnvZv34NBvef ++-xNWnJpFKqyXEi64ONHwjil4/Sk7lunmguwLAPano3wp81qsprv8KTiqJUfF78Crt ++-wY1LMWvC3AcbPBLlyBrr7mPfAoVuxu+s6tXqpcOsp/FoKa9YlIxS82po1aKLnXkA ++-Mc75rlT5WVXrPVeRWgDucxUDOXFpl955pNSQRQIDAQABAoIBAHYIVq8cV4vqd3af ++-0/r3oGsCnwYUl6TV3Ccjkwf4Fk96OFcJrKW19eaYp2cdE6yIWertmBgklnUxyR87 ++-pL0EqdyR15JHNniGNT+eCtOvIP72W3lmtpgBNjPOuBu/9Z9OXXh5+BK1VAI5Fm7u ++-Wo6q49s9bU146d1j1V4vtn3kEZ6DP1M80oWHYMzB4e2sYveWxvckq98zEtQjAlj0 ++-vpoiOB5Kfm5k5Mh6EP02ZrqnfqnBpdqwXjGIPREEMN4qsIwcdHBY5qMzWsw7wQvU ++-MVUAyNb+D1W6tx1FIq0WhEhedLjPaB5OyYPfskFv4QzUHeu4j97yZDCOuniIV1fn ++-lNhurLkCgYEA7d2O9FLtLcpAFADuikjsJOYi2gJ/I/8MqOVO/efngyJl1f6GN6iw ++-RIQ9vJUaA/aA+t3JMJar4iTG9G/YLa7oOKURybbmm7IOZUQiqZHLySLJnpBzcnN/ ++-Tgkx+fQNXs+koioyQwhiSWsgWm0AafxJPDqofqEzzHSvvfLshnNVLU8CgYEA5nnK ++-JbWBaUWemYhzWZX9d6TQW32IJdS8Pt+/NocR+y3CRozAhDA2q+iNQaOWzD9i9Ngc ++-MbG3bBLiu/N6pDHAEX+j7EiDN1NsaV+5oPTQJToSkvZLtNKFJLVUEqxPx0+KcUFV ++-kP2IXqr5TGHCRbWioDFCgFN3w86WcKntiVclzCsCgYA0IGuli07CzCHCwHmGAHkP ++-lQdqM0Xdg5UopifraJjJmg4rGT4ckHEgcsJ8w0gSOkEFuPjQFxTP2DNpeeEsEbp+ ++-P15okBZ1ZE3XT1kxQ+wexerdPtat7DWnykgTeLI9Zs+zYf/lxL6VTE6owl5m24zJ ++-ECnApl8NnTyuKcA/rqKp7QKBgFOhm/XFABmYFq31so2ufJQ+rRCV46J+qHRUMolx ++-x9eSSi3Zgz40VJJax28rElw5IApipRBvQXSpAbdb6YPNPbnbzDrAMUURM4SlJLHA ++-RAtOIFFNqDkMLx4b4k8IUcasGTtxjsAXD7XyapYJ3zn2Z/WjClOQdiQKQdLOBpDQ ++-m7mTAoGBAKmCzouXa6kGV2TxyuYdZVp71zjtAWEradWZUtHkNpySbx6u1HX102N+ ++-1zU0nhwDm75uZskage1+4WyXoQymmgUBK3L7lPjkl5O/7ILqAt05Gqn2fFG3GCdZ ++-CAYURtiFsmjisNRMC+DO/s4li5HNBrvoK/t+CQE0RmjMulhPZajH +++MIIEpQIBAAKCAQEA18r/nJpmqPzoMawvn7qt6Dtz3Jx5332MBnBxXf+dlwZo+YkX +++GCmtXGXi8UtNZh+CnvlBf4+nauxYwzEHrIbMafH+Zt63OUvAjb5uwDDaVOMal4vt +++wkoGzLJxINzvaxEzsSzX89maxkWyaRnaM9ac5/v0WvH0Kz+ZJhzFQAIpUdxwb235 +++BKtIwyMkKqYQb8+0mxSIIEKP9dqsrWNFXiUY1YbY786Yz76NxAg/KFSUGdAPJlqM +++QEVaroTU6zNX5aa6WO8ynnBIvPdS9FbrfIupoXoTQ8WHnmehN09auierVy//KtZI +++HFyd7pMaeiqgyWn91fRz9RluEhWT8IfuOofViQIDAQABAoIBAEn6fmnuJt6tIV8S +++FBuS0Jbqdtx9Smy7ajs05jCe9qQ1XtyZSnEOrK+eAFDPi3/Esq+UbQdxtKf70axN +++DT/w0HhLrXcPyEmcti0ByY8a0GbEmrO0lXSDk1QuoojtJSkT8yA86uXexmhNsY3F +++fqBB5XXEUy+wfhArk/HUcCzy8L5ujnUcPRc3S2MXE5TDheKPDBcWRzDmbCaSIKPN +++96TAqqBHGFvRhkWheXq60D6yo1gb4MfKaQ9hIKVuGy5r+uLpjOyvbLnf0dLIUBiu +++enwUUgJXXLgKJLofoQgozEroW2Xkk22iuo3NwbqYJrvHlzzqAUQl4hxWRESzMjJH +++YIHUCocCgYEA7Zjb8c2j4/MSNtCMtpVeqCiPutAsmzJbVYCtiQIgEFvejlES5B38 +++aB5V0N2TweBWBxyS5PaIp3AD+82l0QeensSIKqkwdcYLleDlO/a/TdZHPrSqhHMS +++Dv0+lnp7DQWs+W2ZFCbEx8dIJA35D+wEk4tYZRyn1GJbigzIde6kzy8CgYEA6IHM +++/yvQBEJiiVLiolkih3yJKa8SkNShlWBmDP/pK32HZoUTIf3nO+o64IlDaPkgDWie +++HhNJoSZCWusTFLLDRXTe4eLuvBhbDlKXEAIlUuGxNujTRuTBGj934o4X6hq0sSJ1 +++Pkybe3liS1Pbhx30ACh4hDQfiDsYgPQ5IOxPuMcCgYEAxnB0wm/OAgRxofZsj9IR +++TMETyiM0HirgvXjLdzKfNQqFxrdP39ZriUpMwjVNww9qymXDChgd6jpUGWqYowyK +++HnBmibrlDnhqFLPQwVREUu40ctrRz+2Ll5lLPMLvIuEqpugygfIfR/vY9MP20KV+ +++7PvkyA423duIOLSUeGrom2ECgYEAo3fnJhyqouP9nWkN+HDMyw8u7ISve+5TMM/W +++0Br419/o25aCTirScZiMDqPTJjHJbEP6r1CGOuvISV3vS2Unz2SM86n2iX5iPp6o +++oNOxZCVT0DQ/nx9j+M1Yv4uBmtFt6wA8CDIaOuSrzCRIOyY/EAFkQibXaJOL9dY/ +++eDtNDa8CgYEA3nJzpWOse+TADe7czdXknOCZbTWMtJru5ufnrpdHPFgKnmw4SA8J +++9hZV3cTBhwZkr5GoL1iWmrA1FCws4rKpAg5q9t7jP7Px/SOF+oHRmx909iC7yhs4 +++qnMrFmmcaxAVN4XNhESuEfjwv7dOZbtepyQ+mtibW6jXZoHm18QoXBM= ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/chain_cert/cert_chain.pem b/examples/puma/chain_cert/cert_chain.pem ++index b60ece6..134ea32 100644 ++--- a/examples/puma/chain_cert/cert_chain.pem +++++ b/examples/puma/chain_cert/cert_chain.pem ++@@ -1,59 +1,60 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDLjCCAhagAwIBAgIBbzANBgkqhkiG9w0BAQ0FADAmMSQwIgYDVQQDDBtpbnRl ++-cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjMwNjA1MDAwMDAwWhcNMjQwNjA1 +++cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjQwNzE0MDAwMDAwWhcNMjUwNzE0 ++ MDAwMDAwWjAeMRwwGgYDVQQDDBN0ZXN0LnB1bWEubG9jYWxob3N0MIIBIjANBgkq ++-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1iY3+/B0oIXUChZFnXVQvZ2PfYJ8UVeW ++-3Oq9a6zQTP95aSwtv/rAt1jYA1H18p6npa254ODZcdWp+EtvUIiTFIII9X0B6WH/ ++-rDm8D6mDkMGi/L3DlJ1vJaOVbXe9NL33zJJznAZ0T2lcg9qXN6wbUIhcChRSMsFw ++-xR0pPnvZv34NBvefxNWnJpFKqyXEi64ONHwjil4/Sk7lunmguwLAPano3wp81qsp ++-rv8KTiqJUfF78CrtwY1LMWvC3AcbPBLlyBrr7mPfAoVuxu+s6tXqpcOsp/FoKa9Y ++-lIxS82po1aKLnXkAMc75rlT5WVXrPVeRWgDucxUDOXFpl955pNSQRQIDAQABo28w ++-bTAdBgNVHQ4EFgQU3FVgqa85bI7/5jVEfOh/w1RfvH4wCwYDVR0PBAQDAgbAMBMG ++-A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAU+wCxrhII ++-TVatm9iz/dMpKWWlNRswDQYJKoZIhvcNAQENBQADggEBAG0gjxN6U8EaUhaJJj8C ++-Av/5A+F5SPDotbpj4T/1ciSn8wQf3aotBaNCzv7mC2mWtl4PIrOZ8bH42dZ0sWEU ++-Ft1h4HVLQADv5QU0RKNuKXoDRvVXB6IDNAIWB+8NQwYwj+WvYH+BLoc53yBfHQGK ++-B+y8SVeEcQVjzmcZ2TUT2/b5XEsiV+ugLce294lUPIlSmWK043Oe3UfMRuurPwyj ++-Qjn/pwl7S22BRDCorQ5NThb+/lsO54J/8zpCxHmhgm152mXcCYBNjYLwd5SYvawN ++-Q5EDcE/31xqtZkGtBDb/ZqwUSbmwLb3qFRjgM/t+H2eUMyZUxbvmxzlZdAO7xAOC ++-fho= +++hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA18r/nJpmqPzoMawvn7qt6Dtz3Jx5332M +++BnBxXf+dlwZo+YkXGCmtXGXi8UtNZh+CnvlBf4+nauxYwzEHrIbMafH+Zt63OUvA +++jb5uwDDaVOMal4vtwkoGzLJxINzvaxEzsSzX89maxkWyaRnaM9ac5/v0WvH0Kz+Z +++JhzFQAIpUdxwb235BKtIwyMkKqYQb8+0mxSIIEKP9dqsrWNFXiUY1YbY786Yz76N +++xAg/KFSUGdAPJlqMQEVaroTU6zNX5aa6WO8ynnBIvPdS9FbrfIupoXoTQ8WHnmeh +++N09auierVy//KtZIHFyd7pMaeiqgyWn91fRz9RluEhWT8IfuOofViQIDAQABo28w +++bTAdBgNVHQ4EFgQUBvBG+wQNE+xNksBRCuzO04bhs2kwCwYDVR0PBAQDAgbAMBMG +++A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUHrcqkw8h +++mKqxtzRdSG4QNeE+pSIwDQYJKoZIhvcNAQENBQADggEBAKO8XfzNct6uwxSh4FVe +++xDcPbIOOGJv3lD2sA1xDRzw/djMITd2eRqG1iLim8whRfd1LqsXb7nHgPJIKIifR +++oqSg0LxmsmZ2+tocFpmVNppKWUggVAuH/yel1s9JWzEkB1NXyoRONQCZIuXTmInu +++RdrdERwy+1VZRSFL7IBZfg45ZzwH+/7Vaz5kY5FjkyBk0xwhIDRUXprO6ZhTokUC +++152UBWdAiK4IHRxLY+h2cjIsR8szSTUzS8erwqQmt+NIeiUEJYtuVS9rQ3zXNBKV +++l9X5G9FwHjWQL3j95ze60sa2xzObCqZ+w7f05O6ZiJ9dqdk+oIPe3+xWeQgVyYn0 +++SLg= ++ -----END CERTIFICATE----- ++ -----BEGIN CERTIFICATE----- ++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yMzA2MDEwMDAwMDBaFw0yNzA2MDEwMDAwMDBaMCYx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx ++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI ++-hvcNAQEBBQADggEPADCCAQoCggEBAOHKwUnnX7QXvewBtH5XAtRbhhgAIQQ14pxs ++-9w3WBWY6B7zKZdkRnu/bULwP4QGHPc/YAtWSMN+1aWWm/6od3xn0AfFrzWxzMXVT ++-ZTnI6aQ3emxIec3gc5Xa4+oF0SUmVZiY3U9l4Apk1d4xNnV81UzE7KpdSUqYXdS/ ++-Ja7T9QXFbE0/5L7Ci9luVQLyUYNiW2CmaiiC1YE9292kfZTujsKKf4Og/65U4qgF ++-mfSTnIBSAHTkiF5Qo8QTx+qz55A0ue2NX3QXVZOYJMtjt8OQEWkGKP2iPFnGnd3i ++-TW57THaNNzVan0A96IZv3hGVNqqlUto6L0tni+QD+3d14FDRLKMCAwEAAaN1MHMw ++-HQYDVR0OBBYEFPsAsa4SCE1WrZvYs/3TKSllpTUbMA4GA1UdDwEB/wQEAwICBDAT ++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFIDE ++-rrQrGbYkUaWL+93VfSqFj3fWMA0GCSqGSIb3DQEBDQUAA4IBAQCCEJymTKz93kmQ ++-Bfgj1UkVo1MC4GQAwVDJJTdEk80a3AFPuwmuwcl50rq2w4UBN9vkleKWz9ysWSrQ ++-Qs5RoM08ggca1dqgzIKHH95ft0BFZixEfkAhfAcrEiBNT6H5lgJ+EcFNq1n1T435 ++-ow3r9P3u4FlBP4BmfpffnOFlY1cTYsEOFtDSGmBe8mNJkx2z37OAiLtSKPtkfpeq ++-84haUFAvfJX/93JLsuHbrhZXTjXVGDsbITxheiqmxaN5HiFacG0Ju2USPtHAge8H ++-Rz3fbPlN2Txn83ejbaHetj2zrbsd+QobPusfDRZKUcDG/CSXV7lc65+Lp0iPbCd/ ++-KG6q1Yf+ +++hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF +++cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc +++T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD +++szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne +++exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG +++8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw +++HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT +++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk +++Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy +++aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk +++c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo +++4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ ++++UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0 +++Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq +++g3cTPG2b ++ -----END CERTIFICATE----- ++ -----BEGIN CERTIFICATE----- ++-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 +++Srj3l9ghFLwEImIBPw== ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/generate_chain_test.rb b/examples/puma/chain_cert/generate_chain_test.rb ++index 31c215e..0e6b0d8 100644 ++--- a/examples/puma/chain_cert/generate_chain_test.rb +++++ b/examples/puma/chain_cert/generate_chain_test.rb ++@@ -14,10 +14,7 @@ expires in 4 years ++ =end ++ ++ require 'bundler/inline' ++- ++- ++-require 'certificate_authority' ++-gemfile do +++gemfile(true) do ++ source 'https://rubygems.org' ++ gem 'certificate_authority' ++ end ++diff --git a/examples/puma/chain_cert/intermediate.crt b/examples/puma/chain_cert/intermediate.crt ++index 8194028..f26fb01 100644 ++--- a/examples/puma/chain_cert/intermediate.crt +++++ b/examples/puma/chain_cert/intermediate.crt ++@@ -1,20 +1,20 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yMzA2MDEwMDAwMDBaFw0yNzA2MDEwMDAwMDBaMCYx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx ++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI ++-hvcNAQEBBQADggEPADCCAQoCggEBAOHKwUnnX7QXvewBtH5XAtRbhhgAIQQ14pxs ++-9w3WBWY6B7zKZdkRnu/bULwP4QGHPc/YAtWSMN+1aWWm/6od3xn0AfFrzWxzMXVT ++-ZTnI6aQ3emxIec3gc5Xa4+oF0SUmVZiY3U9l4Apk1d4xNnV81UzE7KpdSUqYXdS/ ++-Ja7T9QXFbE0/5L7Ci9luVQLyUYNiW2CmaiiC1YE9292kfZTujsKKf4Og/65U4qgF ++-mfSTnIBSAHTkiF5Qo8QTx+qz55A0ue2NX3QXVZOYJMtjt8OQEWkGKP2iPFnGnd3i ++-TW57THaNNzVan0A96IZv3hGVNqqlUto6L0tni+QD+3d14FDRLKMCAwEAAaN1MHMw ++-HQYDVR0OBBYEFPsAsa4SCE1WrZvYs/3TKSllpTUbMA4GA1UdDwEB/wQEAwICBDAT ++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFIDE ++-rrQrGbYkUaWL+93VfSqFj3fWMA0GCSqGSIb3DQEBDQUAA4IBAQCCEJymTKz93kmQ ++-Bfgj1UkVo1MC4GQAwVDJJTdEk80a3AFPuwmuwcl50rq2w4UBN9vkleKWz9ysWSrQ ++-Qs5RoM08ggca1dqgzIKHH95ft0BFZixEfkAhfAcrEiBNT6H5lgJ+EcFNq1n1T435 ++-ow3r9P3u4FlBP4BmfpffnOFlY1cTYsEOFtDSGmBe8mNJkx2z37OAiLtSKPtkfpeq ++-84haUFAvfJX/93JLsuHbrhZXTjXVGDsbITxheiqmxaN5HiFacG0Ju2USPtHAge8H ++-Rz3fbPlN2Txn83ejbaHetj2zrbsd+QobPusfDRZKUcDG/CSXV7lc65+Lp0iPbCd/ ++-KG6q1Yf+ +++hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF +++cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc +++T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD +++szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne +++exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG +++8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw +++HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT +++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk +++Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy +++aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk +++c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo +++4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ ++++UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0 +++Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq +++g3cTPG2b ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/intermediate.key b/examples/puma/chain_cert/intermediate.key ++index 53a547b..bb63df7 100644 ++--- a/examples/puma/chain_cert/intermediate.key +++++ b/examples/puma/chain_cert/intermediate.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- diff --cc debian/patches/0011-disable-minitest-extensions.patch index 0000000,0000000..cf1d2c9 new file mode 100644 --- /dev/null +++ b/debian/patches/0011-disable-minitest-extensions.patch @@@ -1,0 -1,0 +1,41 @@@ ++From: Daniel Leidert ++Date: Wed, 5 Feb 2020 22:20:42 +0100 ++Subject: Disable unavailable minitest extensions ++ ++Forwarded: not-needed ++--- ++ test/helper.rb | 7 +------ ++ 1 file changed, 1 insertion(+), 6 deletions(-) ++ ++--- a/test/helper.rb +++++ b/test/helper.rb ++@@ -16,7 +16,6 @@ ++ require_relative "minitest/verbose" ++ require "minitest/autorun" ++ require "minitest/pride" ++-require "minitest/proveit" ++ require "minitest/stub_const" ++ require "net/http" ++ require_relative "helpers/apps" ++@@ -110,12 +109,9 @@ ++ Minitest::Test.prepend TimeoutEveryTestCase ++ ++ if ENV['CI'] ++- require 'minitest/retry' ++ ++ SUMMARY_FILE = ENV['GITHUB_STEP_SUMMARY'] ++ ++- Minitest::Retry.use! ++- ++ if SUMMARY_FILE && ENV['GITHUB_ACTIONS'] == 'true' ++ ++ GITHUB_STEP_SUMMARY_MUTEX = Mutex.new ++@@ -215,7 +211,7 @@ ++ PROJECT_ROOT = File.dirname(__dir__) ++ ++ def self.run(reporter, options = {}) # :nodoc: ++- prove_it! +++ #prove_it! ++ super ++ end ++ diff --cc debian/patches/0012-disable-cli-ssl-tests.patch index 0000000,0000000..889a8c4 new file mode 100644 --- /dev/null +++ b/debian/patches/0012-disable-cli-ssl-tests.patch @@@ -1,0 -1,0 +1,26 @@@ ++From: Daniel Leidert ++Date: Wed, 5 Feb 2020 23:18:37 +0100 ++Subject: Disable cli ssl tests ++ ++Forwarded: not-needed ++--- ++ test/test_pumactl.rb | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++--- a/test/test_pumactl.rb +++++ b/test/test_pumactl.rb ++@@ -255,12 +255,12 @@ ++ end ++ ++ ++- def test_control_ssl_ipv4 +++ def __test_control_ssl_ipv4 ++ skip_unless :ssl ++ control_ssl '127.0.0.1' ++ end ++ ++- def test_control_ssl_ipv6 +++ def __test_control_ssl_ipv6 ++ skip_unless :ssl ++ control_ssl '[::1]' ++ end diff --cc debian/patches/0013-fix-test-term-not-accepts-new-connections.patch index 0000000,0000000..4226609 new file mode 100644 --- /dev/null +++ b/debian/patches/0013-fix-test-term-not-accepts-new-connections.patch @@@ -1,0 -1,0 +1,22 @@@ ++From: Daniel Leidert ++Date: Thu, 6 Feb 2020 11:24:24 +0100 ++Subject: Fix test to read output locale independent ++ ++The test fails if run in a non-English environment. ++ ++Forwarded: https://github.com/puma/puma/issues/2149 ++--- ++ test/test_integration_single.rb | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++--- a/test/test_integration_single.rb +++++ b/test/test_integration_single.rb ++@@ -112,7 +112,7 @@ ++ assert wait_for_server_to_include('Gracefully stopping') # wait for server to begin graceful shutdown ++ ++ # Invoke a request which must be rejected ++- _stdin, _stdout, rejected_curl_stderr, rejected_curl_wait_thread = Open3.popen3("curl #{HOST}:#{@tcp_port}") +++ _stdin, _stdout, rejected_curl_stderr, rejected_curl_wait_thread = Open3.popen3({ "LC_ALL" => "C" }, "curl http://#{HOST}:#{@tcp_port}") ++ ++ assert nil != Process.getpgid(@server.pid) # ensure server is still running ++ assert nil != Process.getpgid(curl_wait_thread[:pid]) # ensure first curl invocation still in progress diff --cc debian/patches/0014-disable-test-failing-on-amd64.patch index 0000000,0000000..74906aa new file mode 100644 --- /dev/null +++ b/debian/patches/0014-disable-test-failing-on-amd64.patch @@@ -1,0 -1,0 +1,23 @@@ ++From: Pirate Praveen ++Date: Mon, 8 Mar 2021 23:03:21 +0530 ++Subject: Disable test that failied on amd64 buildd ++ ++This test failed on amd64 buildd ++https://buildd.debian.org/status/fetch.php?pkg=puma&arch=amd64&ver=5.2.2-1&stamp=1615133735&raw=0 ++ ++Forwarded: not-needed ++--- ++ test/test_puma_server.rb | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++--- a/test/test_puma_server.rb +++++ b/test/test_puma_server.rb ++@@ -1566,7 +1566,7 @@ ++ end ++ end ++ ++- def test_command_ignored_before_run +++ def __test_command_ignored_before_run ++ @server.stop # ignored ++ @server.run ++ @server.halt diff --cc debian/patches/0015-disable-different-output-test.patch index 0000000,0000000..7148472 new file mode 100644 --- /dev/null +++ b/debian/patches/0015-disable-different-output-test.patch @@@ -1,0 -1,0 +1,13 @@@ ++Output changed from 'OK' to '::Rack::URLMap is loaded' ++ ++--- a/test/test_url_map.rb +++++ b/test/test_url_map.rb ++@@ -9,7 +9,7 @@ ++ end ++ ++ # make sure the mapping defined in url_map_test/config.ru works ++- def test_basic_url_mapping +++ def __test_basic_url_mapping ++ skip_if :jruby ++ env = { "BUNDLE_GEMFILE" => "#{__dir__}/url_map_test/Gemfile" } ++ Dir.chdir("#{__dir__}/url_map_test") do diff --cc debian/patches/0016-disable-test-failing-on-arm64.patch index 0000000,0000000..7916853 new file mode 100644 --- /dev/null +++ b/debian/patches/0016-disable-test-failing-on-arm64.patch @@@ -1,0 -1,0 +1,13 @@@ ++this test is failing on arm64 buildd (sometimes on other archs as well) ++ ++--- a/test/test_plugin_systemd.rb +++++ b/test/test_plugin_systemd.rb ++@@ -32,7 +32,7 @@ ++ @sockaddr = nil ++ end ++ ++- def test_systemd_notify_usr1_phased_restart_cluster +++ def __test_systemd_notify_usr1_phased_restart_cluster ++ skip_unless :fork ++ assert_restarts_with_systemd :USR1 ++ end diff --cc debian/patches/0017-disable-test-failing-on-armhf.patch index 0000000,0000000..9e9c286 new file mode 100644 --- /dev/null +++ b/debian/patches/0017-disable-test-failing-on-armhf.patch @@@ -1,0 -1,0 +1,13 @@@ ++https://ci.debian.net/packages/p/puma/testing/armhf/42745746/ ++ ++--- a/test/test_integration_ssl_session.rb +++++ b/test/test_integration_ssl_session.rb ++@@ -122,7 +122,7 @@ ++ assert reused, 'session was not reused' ++ end ++ ++- def test_off_tls1_2 +++ def __test_off_tls1_2 ++ ssl_vers = Puma::MiniSSL::OPENSSL_LIBRARY_VERSION ++ old_ssl = ssl_vers.include?(' 1.0.') || ssl_vers.match?(/ 1\.1\.1[ a-e]/) ++ skip 'Requires 1.1.1f or later' if old_ssl diff --cc debian/patches/series index 0000000,0000000..417a449 new file mode 100644 --- /dev/null +++ b/debian/patches/series @@@ -1,0 -1,0 +1,9 @@@ ++0004-puma.gemspec-drop-git-usage.patch ++0011-disable-minitest-extensions.patch ++0012-disable-cli-ssl-tests.patch ++0013-fix-test-term-not-accepts-new-connections.patch ++0014-disable-test-failing-on-amd64.patch ++0015-disable-different-output-test.patch ++0016-disable-test-failing-on-arm64.patch ++0017-disable-test-failing-on-armhf.patch ++0009-CI-update-chain-certs-example-files-3426.patch diff --cc debian/puma.1 index 0000000,0000000..47a94c3 new file mode 100644 --- /dev/null +++ b/debian/puma.1 @@@ -1,0 -1,0 +1,165 @@@ ++.TH PUMA "1" "January 2020" "PUMA 3.12" "User Commands" ++ ++.SH NAME ++puma \- fast, concurrent web server for ruby and rack ++ ++.SH USAGE ++.BI "puma [options...]" " [rackup file]" ++.PP ++.B puma [\-h | \-\-help | \-V | \-\-version] ++ ++.SH OPTIONS ++.PP ++The following options are available: ++.TP ++.BI "\-b, \-\-bind " URI ++URI to bind to (tcp://, unix://, ssl://). ++.TP ++.BI "\-C, \-\-config " PATH ++Load given path as a config file. ++.TP ++.BI "\-\-control " URL ++DEPRECATED alias for \fB\-\-control\-url\fR. ++.TP ++.BI "\-\-control\-token " TOKEN ++The \fITOKEN\fR to use as authentication for the control server. ++.TP ++.BI "\-\-control\-url " URL ++The bind \fIURL\fR to use for the control server and app. Use \fIauto\fR to ++use a temp unix server. This requires to use a \fB\-\-control\-token\fR, which ++needs to be given with every request to the control server (\fItoken=foo\fR). ++.TP ++.B \-d, \-\-daemon ++Demonize the server into the background. ++.TP ++.B \-\-debug ++Show low level debugging information. ++.TP ++.BI "\-\-dir " DIR ++Change to given directory before starting. ++.TP ++.BI "\-e, \-\-environment " ENVIRONMENT ++The environment to run the Rack app on. Default \fIdevelopment\fR. ++.TP ++.BI "\-I, \-\-include " PATH ++Specify \fB$LOAD_PATH\fR directories. ++.TP ++.BI "\-p, \-\-port " PORT ++Define the TCP port to bind to. Use \fB\-b\fR for more advanced options. ++.TP ++.BI "\-\-pidfile " PATH ++Use the given path as PID file. ++.TP ++.B \-\-preload ++Preload the application. This loads all the application code prior to forking. ++Preloading reduces total memory usage of an application and is only available ++in cluster mode. ++.TP ++.B \-\-prune\-bundler ++Prune out the bundler env if possible. ++.TP ++.B \-q, \-\-quiet ++Do not log requests internally. Default: \fItrue\fR. ++.TP ++.B \-v, \-\-log-requests ++Log requests as they occur. ++.TP ++.BI "\-R, \-\-restart\-cmd " CMD ++The \fBpuma\fR command to run during a hot restart. Default: \fIinferred\fR. ++.TP ++.BI "\-S, \-\-state " PATH ++Where to store the state details. ++.TP ++.BI "\-t, \-\-threads " INT ++Min:max threads to use. Puma will automatically scale the number of threads, ++from the minimum until it caps out at the maximum, based on how much traffic ++is present. Default: \fI0:16\fR. ++.TP ++.B \-\-tcp\-mode ++Run the app in raw TCP mode instead of HTTP mode. ++.TP ++.B \-\-early-hints ++Enable early hints support. ++.TP ++.BI "\-w, \-\-workers " COUNT ++Activate cluster mode and define number of worker processes to create. In this ++mode workers are forked from a master process. Each child process still has ++its own thread pool and the \fB\-t\fR setting is per worker. ++.TP ++.BI "\-\-tag " NAME ++Additional text to display in process listing. ++.TP ++.BI "\-\-redirect\-stdout " FILE ++Redirect \fBSTDOUT\fR to a specific file. ++.TP ++.BI "\-\-redirect\-stderr " FILE ++Redirect \fBSTDERR\fR to a specific file. ++.TP ++.B \-\-[no\-]redirect\-append ++Append to redirected files. ++.TP ++.B \-h, \-\-help ++Show help. ++.TP ++.B \-V, \-\-version ++Print the version information. ++ ++.SH EXAMPLES ++.PP ++The following examples show how to bind TCP or sockets: ++.PP ++Bind Puma to a socket with the -b (or --bind) flag: ++.RS ++.B puma -b tcp://127.0.0.1:9292 ++.RE ++.PP ++To use a UNIX Socket instead of TCP: ++.RS ++.B puma -b unix:///var/run/puma.sock ++.RE ++.PP ++To change the permissions of the UNIX socket, add a umask parameter: ++.RS ++.B puma -b 'unix:///var/run/puma.sock?umask=0111' ++.RE ++.PP ++In need of a bit of security use SSL sockets: ++.RS ++.B puma -b 'ssl://127.0.0.1:9292?key=path_to_key&cert=path_to_cert' ++.RE ++.PP ++The following example show how to Create a control server and use ++.BR pumactl (1) ++to interact with the control server to restart \fBpuma\fR. ++.RS ++.B puma --control-url tcp://127.0.0.1:9293 --control-token foo ++.br ++.B pumactl --control-url 'tcp://127.0.0.1:9293' --control-token foo restart ++.RE ++.PP ++ ++.SH "CONFIGURATION FILE" ++.B puma ++will look for a configuration file at \fIconfig/puma.rb\fR. If an environment ++is specified, either via the \fB\-e\fR and \fB\-\-environment\fR flags, or ++through the \fIRACK_ENV\fR or the \fIRAILS_ENV\fR environment variables, it ++looks for configuration at \fIconfig/puma/.rb\fR. ++.PP ++The \fB\-C\fR flag allows one to pass on a custom configuration location. If ++the value specified is a dash (\fI\-\fR) \fBpuma\fR won't look for any ++configuration file: ++.PP ++.RS ++.B puma -C \(dq\-\(dq ++.RE ++ ++.SH "SEE ALSO" ++.PP ++There is extensive documentation at <\%https://puma.io/puma/\%> and ++<\%https://github.com/puma/puma\%>. ++ ++.SH AUTHOR ++.PP ++This manual page was written by \fBDaniel Leidert\fP ++<\%dleidert@debian\.org\%>, for the Debian GNU/Linux system (but may be used by ++others). diff --cc debian/puma.docs index 0000000,0000000..b43bf86 new file mode 100644 --- /dev/null +++ b/debian/puma.docs @@@ -1,0 -1,0 +1,1 @@@ ++README.md diff --cc debian/puma.examples index 0000000,0000000..e39721e new file mode 100644 --- /dev/null +++ b/debian/puma.examples @@@ -1,0 -1,0 +1,1 @@@ ++examples/* diff --cc debian/puma.lintian-overrides index 0000000,0000000..e723424 new file mode 100644 --- /dev/null +++ b/debian/puma.lintian-overrides @@@ -1,0 -1,0 +1,4 @@@ ++# this is one of several sub-directories; no need to rename it ++repeated-path-segment puma [usr/share/doc/puma/examples/puma/] ++repeated-path-segment 3.1.0 [usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0/extensions/x86_64-linux/3.1.0/] ++repeated-path-segment lib [usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0/gems/puma-5.6.7/lib/] diff --cc debian/puma.manpages index 0000000,0000000..8c2d587 new file mode 100644 --- /dev/null +++ b/debian/puma.manpages @@@ -1,0 -1,0 +1,2 @@@ ++debian/puma.1 ++debian/pumactl.1 diff --cc debian/pumactl.1 index 0000000,0000000..67e70d6 new file mode 100644 --- /dev/null +++ b/debian/pumactl.1 @@@ -1,0 -1,0 +1,99 @@@ ++.TH PUMA "1" "January 2020" "PUMA 3.12" "User Commands" ++ ++.SH NAME ++pumactl \- command line client for puma ++ ++.SH USAGE ++.B pumactl [options...] [commands] ++.PP ++.B pumactl [\-h | \-\-help | \-V | \-\-version] ++ ++.SH COMMANDS ++.TP ++.B halt ++Halt the server. ++.TP ++.B restart ++Restart the server. ++.TP ++.B phased-restart ++Restart server but phase out old workers while starting new workers one at a ++time. ++.TP ++.B start ++Start the server. ++.TP ++.B stats ++Show stats about the server. ++.TP ++.B status ++Show server status. ++.TP ++.B stop ++Stop server. ++.TP ++.B reload-worker-directory ++Reload the worker directory. ++.TP ++.B gc ++Start garbage collector. ++.TP ++.B gc-stats ++Show information about garbage collector. ++ ++.SH OPTIONS ++.PP ++The following options are available: ++.TP ++.BI "\-F, \-\-config\-file " PATH ++Load given path as a config file. ++.TP ++.BI "\-T, \-\-control\-token " TOKEN ++The \fITOKEN\fR to use as authentication for the control server. ++.TP ++.BI "\-C, \-\-control\-url " URL ++The bind \fIURL\fR to use for the control server and app. Use \fIauto\fR to ++use a temp unix server. This requires to use a \fB\-\-control\-token\fR, which ++needs to be given with every request to the control server (\fItoken=foo\fR). ++.TP ++.BI "\-p, \-\-pid " PID ++Define the TCP port to bind to. Use \fB\-b\fR for more advanced options. ++.TP ++.BI "\-P, \-\-pidfile " PATH ++Use the given path as PID file. ++.TP ++.B \-Q, \-\-quiet ++Don't display messages. ++.TP ++.BI "\-S, \-\-state " PATH ++Where the state file is. ++.TP ++.B \-H, \-\-help ++Show help. ++.TP ++.B \-V, \-\-version ++Print the version information. ++ ++.SH EXAMPLES ++Create a control server and use ++.BR pumactl (1) ++to interact with the control server to restart \fBpuma\fR. ++.RS ++.B puma --control-url tcp://127.0.0.1:9293 --control-token foo ++.br ++.B pumactl --control-url 'tcp://127.0.0.1:9293' --control-token foo restart ++.RE ++.PP ++ ++.SH "SEE ALSO" ++.PP ++.BR puma (1) ++.PP ++There is extensive documentation at <\%https://puma.io/puma/\%> and ++<\%https://github.com/puma/puma\%>. ++ ++.SH AUTHOR ++.PP ++This manual page was written by \fBDaniel Leidert\fP ++<\%dleidert@debian\.org\%>, for the Debian GNU/Linux system (but may be used by ++others). diff --cc debian/ruby-tests.rake index 0000000,0000000..4da1034 new file mode 100644 --- /dev/null +++ b/debian/ruby-tests.rake @@@ -1,0 -1,0 +1,28 @@@ ++require 'gem2deb/rake/testtask' ++ ++Gem2Deb::Rake::TestTask.new do |t| ++ t.libs = ['test'] ++ if ENV['AUTOPKGTEST_TEST_PUMA_SERVER_SSL'] ++ ENV['OPENSSL_CONF'] = '' # https://github.com/puma/puma/issues/2147 ++ t.test_files = FileList['test/test_*_ssl.rb'] ++ else ++ t.test_files = FileList['test/**/*_test.rb'] + FileList['test/**/test_*.rb'] - FileList[ ++ 'test/test_*ssl.rb', ++ 'test/test_integration_cluster.rb', ++ 'test/test_worker_gem_independence.rb', ++ 'test/test_rack_version_restriction.rb', ++ 'test/test_preserve_bundler_env.rb', ++ ] ++ end ++ t.verbose = true ++end.tap do |t| ++ exclude = %w[ ++ test_application_logs_are_flushed_on_write ++ test_hot_restart_does_not_drop_connections ++ test_logs_all_localhost_bindings ++ test_multiple_requests_waiting_on_less_busy_worker ++ test_term_not_accepts_new_connections ++ test_prune_bundler_with_multiple_workers ++ ] ++ t.options << ' ' << "-e'/" << exclude.join('|') << "/'" ++end diff --cc debian/rules index 0000000,0000000..da15652 new file mode 100755 --- /dev/null +++ b/debian/rules @@@ -1,0 -1,0 +1,14 @@@ ++#!/usr/bin/make -f ++ ++export GEM2DEB_TEST_RUNNER = --check-dependencies ++export DH_RUBY = --gem-install ++export DH_RUBY_GEM_INSTALL_EXCLUDE = benchmarks/* docs/* win_gem_test/* tools/* bin/puma-wild ++export LANG = C.UTF-8 ++export LC_ALL = C.UTF-8 ++export TEST_CASE_TIMEOUT = 300 ++ ++%: ++ dh $@ --buildsystem=ruby --with ruby ++ ++override_dh_installchangelogs: ++ dh_installchangelogs History.md diff --cc debian/salsa-ci.yml index 0000000,0000000..33c3a64 new file mode 100644 --- /dev/null +++ b/debian/salsa-ci.yml @@@ -1,0 -1,0 +1,4 @@@ ++--- ++include: ++ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml ++ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml diff --cc debian/source/format index 0000000,0000000..163aaf8 new file mode 100644 --- /dev/null +++ b/debian/source/format @@@ -1,0 -1,0 +1,1 @@@ ++3.0 (quilt) diff --cc debian/source/lintian-overrides index 0000000,0000000..362d49e new file mode 100644 --- /dev/null +++ b/debian/source/lintian-overrides @@@ -1,0 -1,0 +1,2 @@@ ++# no signed tarballs by upstream ++puma source: debian-watch-does-not-check-gpg-signature diff --cc debian/tests/control index 0000000,0000000..e4c5aad new file mode 100644 --- /dev/null +++ b/debian/tests/control @@@ -1,0 -1,0 +1,4 @@@ ++Test-Command: export AUTOPKGTEST_TEST_PUMA_SERVER_SSL=1 && gem2deb-test-runner --check-dependencies --autopkgtest ++Depends: @, @builddeps@ ++Restrictions: allow-stderr ++Features: test-name=ssl diff --cc debian/tests/test_puma_server_ssl index 0000000,0000000..bec1b90 new file mode 100755 --- /dev/null +++ b/debian/tests/test_puma_server_ssl @@@ -1,0 -1,0 +1,19 @@@ ++#!/bin/sh ++ ++set -x ++ ++# override default config ++# https://github.com/puma/puma/issues/2147 ++OPENSSL_CONF='' ++export OPENSSL_CONF ++ ++mv lib .gem2deb.lib ++ ++RUBYLIB=. ruby2.5 -S rake -f ./debian/tests/test_puma_server_ssl.rake ++RUBYLIB=. ruby2.7 -S rake -f ./debian/tests/test_puma_server_ssl.rake ++ ++mv .gem2deb.lib lib ++ ++unset OPENSSL_CONF ++ ++set +x diff --cc debian/tests/test_puma_server_ssl.rake index 0000000,0000000..4049461 new file mode 100644 --- /dev/null +++ b/debian/tests/test_puma_server_ssl.rake @@@ -1,0 -1,0 +1,7 @@@ ++require 'gem2deb/rake/testtask' ++ ++Gem2Deb::Rake::TestTask.new do |t| ++ t.libs = ['test'] ++ t.test_files = FileList['test/test_puma_server_ssl.rb'] ++ t.verbose = true ++end diff --cc debian/upstream/metadata index 0000000,0000000..cbe22a2 new file mode 100644 --- /dev/null +++ b/debian/upstream/metadata @@@ -1,0 -1,0 +1,7 @@@ ++--- ++Archive: GitHub ++Bug-Database: https://github.com/puma/puma/issues ++Bug-Submit: https://github.com/puma/puma/issues/new ++Changelog: https://github.com/puma/puma/releases ++Repository: https://github.com/puma/puma.git ++Repository-Browse: https://github.com/puma/puma diff --cc debian/watch index 0000000,0000000..b06856f new file mode 100644 --- /dev/null +++ b/debian/watch @@@ -1,0 -1,0 +1,5 @@@ ++version=4 ++opts="searchmode=plain, \ ++ filenamemangle=s/.+\/v@ANY_VERSION@/@PACKAGE@-$1\.tar\.gz/" \ ++https://api.github.com/repos/puma/puma/tags \ ++https://api.github.com/repos/puma/puma/tarball/refs/tags/v@ANY_VERSION@